#!/usr/bin/python
import SocketServer

class MyTCPHandler(SocketServer.BaseRequestHandler):
	"""
	The RequestHandler class for our server.

	It is instantiated once per connection to the server, and must
	override the handle() method to implement communication to the
	client.
	"""

	def handle(self):
		# self.request is the TCP socket connected to the client
		while(1):
			try:
				self.data = self.request.recv(1024)
				if not self.data: 
					print "%s close" % self.client_address[0]
					break
				print "%s wrote:" % self.client_address[0], self.data
			except:
				print "except"
				break
			# just send back the same data, but upper-cased
			# self.request.send(self.data.upper())

	def finish(self):
		pass

class MyTCPServer(SocketServer.TCPServer):
	SocketServer.allow_reuse_address = True

if __name__ == "__main__":
	HOST, PORT = "localhost", 10029

	# Create the server, binding to localhost on port 9999
	server = MyTCPServer((HOST, PORT), MyTCPHandler)

	# Activate the server; this will keep running until you
	# interrupt the program with Ctrl-C
	server.serve_forever()


